home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-04-30 | 2.7 KB | 124 lines | [TEXT/SPM ] |
- // QTPlay.c by Stefan C. Sinclair Copyright © 1995-1996 All rights Reserved
-
- #include <Movies.h>
- #include "SpriteError.h"
- #include "SpriteFile.h"
-
- extern CWindowPtr gWindowP;
- extern Boolean gQT;
-
- Boolean PlayMyMovie(Str255 myMovieName);
- Boolean PlaySpriteMovie(SpriteFileRec spriteFile);
- void MyCenterRect(Rect *srcRect, Rect *dstRect);
-
- Boolean PlayMyMovie(Str255 myMovieName)
- {
- Movie movie;
- OSErr error;
- short movieResFile = 0;
- short movieResID = 0;
- Str255 movieName;
- Boolean wasChanged;
- FSSpec theFSSpec;
- Rect movieBox;
-
- // is QT disabled?
- if(gQT == FALSE)
- return TRUE;
-
- error = FSMakeFSSpec( 0, 0L, myMovieName, &theFSSpec );
- if(error != noErr)
- {
- DoError(kNoFileSpecForMovie, FALSE);
- return FALSE;
- }
- error = OpenMovieFile( &theFSSpec, &movieResFile, fsRdPerm );
- if(error != noErr)
- {
- DoError(kNoOpenFile, FALSE);
- CloseMovieFile( movieResFile );
- return FALSE;
- }
- error = NewMovieFromFile( &movie, movieResFile, &movieResID,
- movieName, newMovieActive, &wasChanged );
- if(error != noErr)
- {
- DoError(kNoMovieInFile, FALSE);
- CloseMovieFile( movieResFile );
- return FALSE;
- }
- CloseMovieFile( movieResFile );
-
- GetMovieBox(movie, &movieBox );
- MyCenterRect(&movieBox, &gWindowP->portRect);
- SetMovieBox(movie, &movieBox);
- SetMovieGWorld(movie, gWindowP, nil);
- StartMovie(movie);
- while(!IsMovieDone(movie))
- {
- MoviesTask(movie, 0);
- }
- DisposeMovie(movie);
-
- // Make sure the window is cleaned up!
- InvalRect(&gWindowP->portRect);
-
- return TRUE;
- }
-
- Boolean PlaySpriteMovie(SpriteFileRec spriteFile)
- {
- Movie movie;
- OSErr error;
- short movieResFile = 0;
- short movieResID = 0;
- Str255 movieName;
- Boolean wasChanged;
- Rect movieBox;
-
- // is QT disabled?
- if(gQT == FALSE)
- return TRUE;
-
- error = OpenMovieFile( &spriteFile.sfFile, &movieResFile, fsRdPerm );
- if(error != noErr)
- {
- DoError(kNoOpenFile, FALSE);
- CloseMovieFile( movieResFile );
- return FALSE;
- }
- error = NewMovieFromFile( &movie, movieResFile, &movieResID,
- movieName, newMovieActive, &wasChanged );
- if(error != noErr)
- {
- DoError(kNoMovieInFile, FALSE);
- CloseMovieFile( movieResFile );
- return FALSE;
- }
- CloseMovieFile( movieResFile );
-
- GetMovieBox(movie, &movieBox );
- MyCenterRect(&movieBox, &gWindowP->portRect);
- SetMovieBox(movie, &movieBox);
- SetMovieGWorld(movie, gWindowP, nil);
- StartMovie(movie);
- while(!IsMovieDone(movie))
- {
- MoviesTask(movie, 0);
- }
- DisposeMovie(movie);
-
- // Make sure the window is cleaned up!
- InvalRect(&gWindowP->portRect);
-
- return TRUE;
- }
-
- /**** CenterRect ****/
- void MyCenterRect(Rect *srcRect, Rect *dstRect)
- {
- OffsetRect( srcRect, dstRect->left - srcRect->left,
- dstRect->top - srcRect->top);
- OffsetRect( srcRect, (dstRect->right - srcRect->right)/2,
- (dstRect->bottom - srcRect->bottom)/2);
- }